This mitigation describes any guidance or training given to developers of applications to avoid introducing security weaknesses that an adversary may be able to take advantage of.
Domain | ID | Name | Use | |
---|---|---|---|---|
Enterprise | T1212 | Exploitation for Credential Access |
Application developers should consider taking measures to validate authentication requests by enabling one-time passwords, providing timestamps or sequence numbers for messages sent, using digital signatures, and/or using random session keys.[1][2] |
|
Enterprise | T1564 | Hide Artifacts |
Application developers should consider limiting the requirements for custom or otherwise difficult to manage file/folder exclusions. Where possible, install applications to trusted system folder paths that are already protected by restricted file and directory permissions. |
|
.009 | Resource Forking |
Configure applications to use the application bundle structure which leverages the |
||
.012 | File/Path Exclusions |
Application developers should consider limiting the requirements for custom or otherwise difficult to manage file/folder exclusions. Where possible, install applications to trusted system folder paths that are already protected by restricted file and directory permissions. |
||
Enterprise | T1574 | Hijack Execution Flow |
When possible, include hash values in manifest files to help prevent side-loading of malicious libraries.[4] |
|
.002 | DLL Side-Loading |
When possible, include hash values in manifest files to help prevent side-loading of malicious libraries.[4] |
||
Enterprise | T1559 | Inter-Process Communication |
Enable the Hardened Runtime capability when developing applications. Do not include the |
|
.003 | XPC Services |
Enable the Hardened Runtime capability when developing applications. Do not include the |
||
Enterprise | T1647 | Plist File Modification |
Ensure applications are using Apple's developer guidance which enables hardened runtime.[5] |
|
Enterprise | T1496 | .003 | Resource Hijacking: SMS Pumping |
Consider implementing CAPTCHA protection on forms that send messages via SMS. |
Enterprise | T1593 | Search Open Websites/Domains |
Application developers uploading to public code repositories should be careful to avoid publishing sensitive information such as credentials and API keys. |
|
.003 | Code Repositories |
Application developers uploading to public code repositories should be careful to avoid publishing sensitive information such as credentials and API keys. |
||
Enterprise | T1195 | Supply Chain Compromise |
Application developers should be cautious when selecting third-party libraries to integrate into their application. Additionally, where possible, developers should lock software dependencies to specific versions rather than pulling the latest version on build.[6] |
|
.001 | Compromise Software Dependencies and Development Tools |
Application developers should be cautious when selecting third-party libraries to integrate into their application. Additionally, where possible, developers should lock software dependencies to specific versions rather than pulling the latest version on build.[6] |
||
Enterprise | T1550 | Use Alternate Authentication Material |
Consider implementing token binding strategies, such as Azure AD token protection or OAuth Proof of Possession, that cryptographically bind a token to a secret. This may prevent the token from being used without knowledge of the secret or possession of the device the token is tied to.[7][8] |
|
.001 | Application Access Token |
Consider implementing token binding strategies, such as Azure AD token protection or OAuth Proof of Possession, that cryptographically bind a token to a secret. This may prevent the token from being used without knowledge of the secret or possession of the device the token is tied to.[7][8] |
||
Enterprise | T1078 | Valid Accounts |
Ensure that applications do not store sensitive data or credentials insecurely. (e.g. plaintext credentials in code, published credentials in repositories, or credentials in public cloud storage). |
|
Mobile | T1626 | Abuse Elevation Control Mechanism |
Applications very rarely require administrator permission. Developers should be cautioned against using this higher degree of access to avoid being flagged as a potentially malicious application. |
|
Mobile | T1517 | Access Notifications |
Application developers could be encouraged to avoid placing sensitive data in notification text. |
|
Mobile | T1513 | Screen Capture |
Application developers can apply the |
|
Mobile | T1635 | Steal Application Access Token |
Developers should use Android App Links[10] and iOS Universal Links[11] to provide a secure binding between URIs and applications, preventing malicious applications from intercepting redirections. Additionally, for OAuth use cases, PKCE[12] should be used to prevent use of stolen authorization codes. |
|
.001 | URI Hijacking |
Developers should use Android App Links[10] and iOS Universal Links[11] to provide a secure binding between URIs and applications, preventing malicious applications from intercepting redirections. Additionally, for OAuth use cases, PKCE[12] should be used to prevent use of stolen authorization codes. |
||
Mobile | T1474 | Supply Chain Compromise |
Application developers should be cautious when selecting third-party libraries to integrate into their application. |
|
.001 | Compromise Software Dependencies and Development Tools |
Application developers should be cautious when selecting third-party libraries to integrate into their application. |